package com.qys.livesMall.anchor.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qys.livesMall.anchor.model.dto.lives.app.AnchorLivesDTO;
import com.qys.livesMall.anchor.model.entity.AnchorLivesRoom;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qys.livesMall.anchor.model.vo.lives.app.AnchorLivesVO;
import com.qys.livesMall.app.user.model.entity.H2AppUser;

import java.util.List;

/**
 * <p>
 * 主播直播间表 服务类
 * </p>
 *
 * @author wzy
 * @since 2023-06-26
 */
public interface AnchorLivesRoomService extends IService<AnchorLivesRoom> {

    /**
     * 初始化直播间
     * @param anchorId 主播id
     * @return 是否初始化成功
     */
    AnchorLivesRoom initLivesRoom(Long anchorId);

    /**
     * 根据主播id查询直播间
     */
    AnchorLivesRoom queryByAnchorId(Long anchorId);

    /**
     * 根据直播间号查询直播间
     */
    AnchorLivesRoom queryByRoomNum(String roomNum);


    /**
     * 判断正在直播
     */
    AnchorLivesRoom checkIsLive(String roomNum);

    /**
     * 根据用户id查询直播间信息
     */
    AnchorLivesRoom getRoomByUserId(Long userId);

    /**
     * 根据主播id查询用户信息
     * @param anchorId
     * @return
     */
    H2AppUser getUserByAnchorId(Long anchorId);

    IPage<AnchorLivesVO> getAnchorLivesRoom(AnchorLivesDTO anchorLivesDTO);

    /**
     * 记录用户观看直播行为
     * @param userId
     */
    void recordViewing(Long userId);

    /**
     * 获取用户总计观看直播时长
     * @param userId
     * @return
     */
    int getUserViewTime(Long userId);
}
